/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.itschapala.servicesnp.mbean;

import java.math.BigDecimal;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import mx.servicesnpayroll.dao.PagodemiembroFacadeLocal;
import mx.servicesnpayroll.model.Pagodemiembro;

/**
 *
 * @author Grnmnd
 */
@ManagedBean
@SessionScoped
public class pagoDeMiembro {

    @EJB
    private PagodemiembroFacadeLocal pagodemiembroFacade;
    private List<Pagodemiembro> pagos;
    private Pagodemiembro pago;
    private String abono;
    private BigDecimal adeudo;
//--------------------------------GETSET-----------------------------------//

    public String getAbono() {
        return abono;
    }

    public void setAbono(String abono) {
        this.abono = abono;
    }

    public BigDecimal getAdeudo() {
        adeudo = pago.getMontoAPagar().subtract(pago.getMontoPagado());
        return adeudo;
    }

    public void setAdeudo(BigDecimal adeudo) {
        adeudo = pago.getMontoAPagar().subtract(pago.getMontoPagado());
        this.adeudo = adeudo;
    }

    public pagoDeMiembro() {
    }

    public List<Pagodemiembro> getPagos() {
        return pagodemiembroFacade.findAll();
    }

    public void setPagos(List<Pagodemiembro> pagos) {
        this.pagos = pagos;
    }

    public Pagodemiembro getPago() {
        return pago;
    }

    public void setPago(Pagodemiembro pago) {
        this.pago = pago;
    }
//---------------------------------PROCESS--------------------------------//

    public String abonar() {

        int s = new BigDecimal(abono).compareTo(adeudo);
        if (s == -1) {
            pago.setMontoPagado(pago.getMontoPagado().add(new BigDecimal(abono)));
            return "PagoConfirmar";
        } else if (s == 0) {
            pago.setMontoPagado(pago.getMontoPagado().add(new BigDecimal(abono)));
            pago.setLiquidado(true);
            return "PagoConfirmar";
        } else {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "ORROR", "Monto mayor al adeudo"));
            return null;
        }
    }

    public String editar() {
        pagodemiembroFacade.edit(pago);
        return "PagosFT";
    }

    public String addAbono() {
        if (pago.getLiquidado()) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "ORROR", "PAGO liquidado"));
            return null;
        } else {
            return "PagoCrearEditar";
        }
    }
}
